package cn.mesmile.design.template;

import javax.swing.*;

/**
 * @author zb
 * @version 1.0
 * @date 2020/11/21 14:11
 * @description
 */
public abstract class AbstractProjectManager {

    /**
     *  模板方法，执行方法
     */
    public final void processProject() {
        review();

        design();

        coding();

        test();

        online();
    }

    public void review(){
        System.out.println(">>>>>> 项目需求评审");
    }

    public void design(){
        System.out.println(">>>>>>>>>> 需要设计");
    }

    /**
     * 抽象方法，每个编码不一样
     */
    public abstract void coding();

    /**
     * 抽象方法，具体类子类进行实现，测试有多种
     */
    public abstract void test();

    /**
     * 抽象，上线有全量发布，有灰度发布
     */
    public abstract void online();

}
